const path = require('path');
const isProduction = process.env.NODE_ENV === 'production';

function resolve(dir) {
	return path.join(__dirname, '.', dir);
}
module.exports = {
	publicPath: '/',
	lintOnSave: true, // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码。这个值会在 @vue/cli-plugin-eslint 被安装之后生效。
	runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本
	productionSourceMap: false,
	filenameHashing: false, // 去掉文件hash
	css: {
		loaderOptions: {
			sass: {
				data: '@import "@/assets/scss/common/main.scss";'
			}
		}
	},
	devServer: {
		disableHostCheck: true,
		port: '8081',
		open: false, // 是否自动打开浏览器
		compress: false,
		overlay: {
			warnings: false,
			errors: true
		},
		// 配置跨域
		proxy: {
			'/dev': {
				target: 'http://192.168.0.135:7001',
				changeOrigin: true,
				pathRewrite: {
					'^/dev': ''
				}
			},
			'/pro': {
				target: 'https://zfx.xmonecode.com',
				changeOrigin: true,
				pathRewrite: {
					'^/pro': '/api'
				}
			},
			'/mock': {
				target: 'http://localhost:8081',
				changeOrigin: true,
				pathRewrite: {
					'^/mock': '/mock'
				}
			}
		}
	},
	configureWebpack: config => {
		if (isProduction) {
			config.externals = {
				vant: 'vant'
			};
		}
	},
	chainWebpack: config => {
		config.module
			.rule('svg')
			.exclude.add(resolve('src/assets/icons/svg'))
			.end();
		config.module
			.rule('icons')
			.test(/\.svg$/)
			.include.add(resolve('src/assets/icons/svg'))
			.end()
			.use('svg-sprite-loader')
			.loader('svg-sprite-loader')
			.options({
				symbolId: 'icon-[name]'
			});
		/** 有此插件就不用了去，图片压缩网站压缩图片了 */
		/** png、jpg图片压缩有效--已测试 jpg图片压缩图片质量变差*/
		// config.module
		// 	.rule('images')
		// 	.use('image-webpack-loader')
		// 	.loader('image-webpack-loader')
		// 	.options({
		// 		bypassOnDebug: true
		// 	})
		// 	.end();
	}
};
